package dao.majorunit;

import java.util.List;

import util.paramvo.SearchParamVO;
import vo.MajorunitVO;

public interface MajorunitDAO {
	
	/**
	 * 리스트를 iterate를 이용해서 검색. 인자는 리스트 대신 배열로 바꿔도 됨.
	 * 학과유닛의 대학,단대,학부,학과,계열,세부계열은 join해서 name도 가져올 것.
	 * null이 들어오는 경우 전부 다.
	 * @param 검색값 토큰 리스트, 한 페이지 당 줄 수, 불러올 페이지
	 * @return 유닛리스트
	 */
	public List<MajorunitVO> getSearchedUnitByWord(SearchParamVO search) throws Exception;
	
	/**
	 * 검색값에 해당하는 학과유닛 총 수
	 * @param search 검색값 토큰 리스트
	 * @return
	 */
	public int countSearchedUnitByWord(List<String> search) throws Exception;

	/**
	 * 학과유닛 하나 불러오기(로고 포함). 학교, 단대, 학부, 학과는 join 해서 name도 모두
	 * @param majorunit_no
	 * @return
	 */
	public MajorunitVO getOneUnit(int majorunit_no) throws Exception;

	/**
	 * 학과유닛 등록
	 * @param param
	 */
	public void registerMajorunit(MajorunitVO param) throws Exception;
	
	/**
	 * 학과유닛 수정
	 * @param param
	 */
	public void updateMajorunit(MajorunitVO param) throws Exception;
	
	/**
	 * 학과유닛 삭제
	 * @param majorunit_no
	 */
	public void deleteMajorunit(int majorunit_no) throws Exception;
	
	/**
	 * 특정 학교의 학과 목록
	 * @param univ_no
	 */
	public List<MajorunitVO> getMajorunits(int univ_no) throws Exception;

	/**
	 * 특정 학교 학과유닛 삭제
	 * @param univ_no
	 */
	public void deleteMajorunitInUniv(int univ_no) throws Exception;

}
